<template>
  <section>
    <div class="content-title">{{ title }}</div>
    <div class="os">
      <div v-for="(x, y) in infoList" :key="y" style="display: flex;">
        <div style="margin-right: 10px;">{{ x.title }}</div>
        <div> {{ x.value }}</div>
      </div>
    </div>
  </section>
</template>
<script setup>
import { onMounted, ref, getCurrentInstance } from 'vue';
// const { machineIdSync } = require('node-machine-id')
const os = require('os');
const si = require('systeminformation');
const { proxy } = getCurrentInstance()
// const { shell } = require('electron')
const info = ref({
  os: '未知',
  browser: '未知',
  screen: '未知',
  cpuCores: '未知',
  deviceMemory: '未知',
  connection: '未知',
  batteryLevel: '未知'
});

// // console.log('系统类型:', os.type()); // 如 'Linux', 'Windows_NT', 'Darwin'
// // console.log('平台:', os.platform()); // 如 'linux', 'win32', 'darwin'
// // console.log('架构:', os.arch()); // 如 'x64', 'arm'
// // console.log('CPU 核心数:', os.cpus().length);
// // console.log('总内存:', os.totalmem() / (1024 * 1024 * 1024), 'GB'); // 总内存，单位为GB
// // console.log('空闲内存:', os.freemem() / (1024 * 1024 * 1024), 'GB'); // 空闲内存，单位为GB
// // console.log('网络接口:', os.networkInterfaces()); // 网络接口信息
// // console.log('系统运行时间:', os.uptime() / 3600, '小时'); // 系统运行时间，单位为小时
// const msg = new SpeechSynthesisUtterance('你是个大傻子');
// msg.lang = 'zh-CN'; // 设置语言为中文
// msg.rate = 0.8; // 语速，0.1-10，默认为1
// msg.volume = 1; // 音量，0-1，默认为1
// msg.pitch = 1; // 音调，0-2，默认为1
// window.speechSynthesis.speak(msg);
// const str = shell.showItemInFolder('D:\longxin\ent_risk\enterprise-risk-front\ent_risk\entrisk-ui\src\views\report')
// // console.log(shell.trashItem('D:\cyc'))

const infoList = ref([])
// console.log(navigator)

onMounted(() => {
  getSiInfo()
  getBatteryInfo()
  proxy.$request.get('http://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s=孤勇者&type=1&offset=0&total=true&limit=2').then*(res=>{
    // console.log(res)
  })
})

const getBatteryInfo = async () => {
  if ('getBattery' in navigator) {
    try {
      const battery = await navigator.getBattery();
      navigator.getBattery().then(res=>{
        // console.log(res)
      })
      info.value.batteryLevel = `${Math.floor(battery.level * 100)}%`;
      // console.log(info.value)
    } catch (error) {
      console.error('获取电池信息失败:', error);
    }
  }
};

// 获取系统信息
function getSiInfo() {
  // 获取 CPU 信息
  si.cpu().then(data => {
    const arr = [
      { title: '用户', value: os.userInfo().username },
      { title: '主机', value: os.hostname() },
      { title: '处理器', value: data.brand },
      { title: '系统类型', value: os.type() },
      { title: '平台', value: os.platform },
      { title: '架构', value: os.arch },
      { title: '系统版本', value: os.release() },
      { title: 'CPU核心数', value: os.cpus().length },
      { title: '总内存:', value: (os.totalmem() / (1024 * 1024 * 1024)).toFixed(1) + 'GB' }, // 总内存，单位为GB
      { title: '空闲内存:', value: (os.freemem() / (1024 * 1024 * 1024)).toFixed(1) + 'GB' }, // 空闲内存，单位为GB
      { title: '系统运行时间:', value: (os.uptime() / 3600).toFixed(1) + '小时' },// 系统运行时间，单位为小时
      // { title: '当前工作目录', value: process.cwd() },
      // { title: '物理地址', value: machineIdSync()},

    ]
    infoList.value = arr
    // console.log(data);
  }).catch(error => {
    console.error(error);
  });

  // 获取内存信息
  si.mem().then(data => {
    // console.log(data);
  }).catch(error => {
    console.error(error);
  });
}

// // console.log(os.uptime())

// 获取操作系统类型
// const type = os.type(); // 返回 'Linux'、'Darwin'（对于 macOS）或 'Windows_NT'

// // 获取操作系统版本
// const version = os.release(); // 返回操作系统版本字符串

// // 获取操作系统详细信息
// const details = os.platform(); // 返回 'linux'、'darwin'、'win32' 等

// // 获取当前工作目录
// const cwd = process.cwd();

// // 获取系统架构
// const arch = os.arch(); // 返回 'x64'、'arm' 等

// // 输出获取到的信息
// // console.log(`操作系统类型: ${type}`);
// // console.log(`操作系统版本: ${version}`);
// // console.log(`操作系统详细信息: ${details}`);
// // console.log(`当前工作目录: ${cwd}`);
// // console.log(`系统架构: ${arch}`);



const props = defineProps({
  title: {
    type: String,
    defalut: ''
  }
})
</script>
<style scoped lang="scss">
.note {
  >div:nth-child(2) {
    display: flex;

    >div {
      width: 25%;
      height: 30px;
      display: flex;
      justify-content: center;
      align-items: center;
      cursor: pointer;
    }
  }
}
</style>
